<?php
// trait A{
// 	public function getInfo() {
// 		echo '锄禾日当午<br>';
// 	}
// }
// //使用原型
// class Student {
// 	use A;	//代码复用
// }
// //测试
// $stu=new Student;
// $stu->getInfo();	//锄禾日当午

//原型
trait A{
	public function getInfo1() {
		echo '锄禾日当午<br>';
	}
}
trait B{
	public function getInfo2() {
		echo '床前明月光<br>';
	}
}
// //使用原型
// class Student {
// 	use A,B;	//引入A、B trait
// }
// //测试
// $stu=new Student;
// $stu->getInfo1();	//锄禾日当午
// $stu->getInfo2();	//床前明月光

class Student {
	use A,B{	//引入A和B的trait，同时解决名称冲突
		//方法一：方法替换
		//A::getInfo insteadof B;	//将A中的getInfo替换掉B中的getInfo
		//B::getInfo insteadof A;		//将B中的getInfo替换到A中的getInfo

		//方法二：改名
		A::getInfo insteadof B;
		B::getInfo as show;		//将B的getInfo改名为show
	}
}
//测试
$stu=new Student;
$stu->getInfo();	//锄禾日当午
$stu->show();		//床前明月光
/*
同名冲突的解决方法有两个：
第一：方法替换
?>